package com.ld.common.util.filelistener.jnotify;

import lombok.Data;
import net.contentobjects.jnotify.JNotify;
import net.contentobjects.jnotify.JNotifyListener;

/**
 * 文件监控model
 * 
 * @ClassName FileChangedListenerModel
 * @author <a href="mailto:donggongai@126.com" target="_blank">吕凯</a>
 * @date 2019年1月18日 上午8:17:39
 *
 */
@Data
public class FileChangedListenerModel {
    /** 名称 */
    private String name;
    /** 唯一识别码，用于注册到管理器时做识别 */
    private String keyCode;
    /** 监听文件路径 */
    private String path;
    /** 监听类型，创建，删除，修改，重命名 */
    private int mask = JNotify.FILE_CREATED | JNotify.FILE_DELETED | JNotify.FILE_MODIFIED | JNotify.FILE_RENAMED;
    /** 是否监听子目录 */
    private boolean watchSubtree;
    /** 监听器 */
    private JNotifyListener listener;
    /** 监控id，系统自动赋值 */
    private Integer watchID;
    /** 是否已启动 */
    private boolean started = false;

    public FileChangedListenerModel() {
        super();
    }

    public FileChangedListenerModel(String name, String keyCode, String path, int mask, boolean watchSubtree, JNotifyListener listener) {
        super();
        this.name = name;
        this.keyCode = keyCode;
        this.path = path;
        this.mask = mask;
        this.watchSubtree = watchSubtree;
        this.listener = listener;
    }

}
